package com.merybere.apps.ejercicio_rss; import data.ArticlesContract; import data.ArticlesContract.Articles; import data.ArticlesDbHelper; import android.app.Activity; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.text.format.DateUtils; import android.webkit.WebView; import android.widget.TextView; import app.AppIntent; public class ArticleDetailActivity extends Activity { private TextView title_article_view; private TextView date_article_view; private WebView content_article_view; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.article_detail); // Identificar los campos que voy a mostrar title_article_view = (TextView) findViewById(R.id.article_detail_title); date_article_view = (TextView) findViewById(R.id.article_detail_pub_date); content_article_view = (WebView) findViewById(R.id.article_detail_content); } @Override protected void onStart() { // TODO Auto-generated method stub super.onStart(); final long id = getIntent().getLongExtra(AppIntent.EXTRA_ID, -1); getArticle(id); } private void getArticle(long id) { // Cargar el helper de la BD ArticlesDbHelper helper = new ArticlesDbHelper(this); SQLiteDatabase db = helper.getReadableDatabase(); String table = ArticlesContract.Articles.TABLE_NAME; //String[] columns = new String[] { Articles._ID, Articles.TITLE, Articles.PUB_DATE}; String[] columns = null; // la parte del where; usamos el ?, en los datos, ya que como se suele coger de pantalla, se normalizar� String selection = Articles._ID + "=?"; String[] selectionArgs = new String[]{"" + id}; String orderBy = null; String groupBy = null; String having = null; final Cursor cursor = db.query(table, columns, selection, selectionArgs, groupBy, having, orderBy); // Caso de que la query devolviera m�s de un resultado, movemos el cursor al primer elemento cursor.moveToFirst(); // Coger la columna de t�tulo final String title_article = cursor.getString(cursor.getColumnIndex(Articles.TITLE)); title_article_view.setText(title_article); // Coger la columna de fecha final Long date_article = cursor.getLong(cursor.getColumnIndex(Articles.PUB_DATE)); date_article_view.setText(DateUtils.getRelativeTimeSpanString(date_article)); final String content_article = (String) cursor.getString(cursor.getColumnIndex(Articles.CONTENT)); String baseUrl = null; String mimeType = null; String encoding = "UTF-8"; String historyUrl = ""; content_article_view.loadDataWithBaseURL(baseUrl, content_article, mimeType, encoding, historyUrl); // Una vez que se ha acabado de utilizar el cursor, hay que cerrarlo para liberar cursor.close(); } }